/*
 * Copyright 2007 National Bioinformatics Network
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package dgbgui.tools;

import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import dgbgui.actions.ActionEnabler;
import dgbgui.gui.dialogs.DGBGUIDialog;

public abstract class DialogedTool implements Tool, WindowListener, ActionListener {

    public DialogedTool() {
        // Disable all actions
        ActionEnabler.getInstance().disableAll();
    }

    protected void doClose() {
        // Re-enable actions
        ActionEnabler.getInstance().reenableFromCurrentState();
        m_dialog.setVisible(false);
    }
    
    // ----- WindowListener -----
    
    public void windowActivated(WindowEvent arg0) {
        // Do nothing
    }

    public void windowClosed(WindowEvent arg0) {
        m_dialog.getCancelButton().doClick();
    }

    public void windowClosing(WindowEvent arg0) {
        // Do nothing
    }

    public void windowDeactivated(WindowEvent arg0) {
        // Do nothing
    }

    public void windowDeiconified(WindowEvent arg0) {
        // Do nothing
    }

    public void windowIconified(WindowEvent arg0) {
        // Do nothing
    }

    public void windowOpened(WindowEvent arg0) {
        // Do nothing
    }

    // ----- Fields -----
    
    protected DGBGUIDialog m_dialog;

}
